package com.hapzxb.thread.deprecated;

import com.hapzxb.thread.state.SleepUtils;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;

/**
 * @author hhh
 * @date 2021-04-29 22:19
 */
public class Deprecated {

    public static void main(String[] args) throws InterruptedException {
        DateFormat format = new SimpleDateFormat("HH:mm:ss");
        Thread printThread = new Thread(new Runner(), "PrintThread");
        printThread.setDaemon(true);
        printThread.start();
        TimeUnit.SECONDS.sleep(3);

        // 将PrintThread 进行暂停，输出内容 工作停止
        System.out.println(printThread.getName() + " state: " + printThread.getState());
        printThread.suspend();
        System.out.println("main suspend PrintThread at " + format.format(new Date()));
        System.out.println(printThread.getName() + " state: " + printThread.getState());

        TimeUnit.SECONDS.sleep(3);
        // 将PrintThread进行恢复，输出内容继续
        printThread.resume();
        System.out.println("main resume PrintThread at " + format.format(new Date()));
        System.out.println(printThread.getName() + " state: " + printThread.getState());
        TimeUnit.SECONDS.sleep(3);

        // 将PrintThread进行终止，输出内容停止
        printThread.stop();
        System.out.println("main stop PrintThread at " + format.format(new Date()));
        System.out.println(printThread.getName() + " state: " + printThread.getState());
        TimeUnit.SECONDS.sleep(3);

    }

    static class Runner implements Runnable{

        @Override
        public void run() {
            DateFormat format = new SimpleDateFormat("HH:mm:ss");
            while (true) {
                System.out.println(Thread.currentThread().getName()
                        + " Run at " + format.format(new Date()));
                SleepUtils.second(1);
            }
        }
    }
}
